package org.finesys.common.feign.annotation;

import java.lang.annotation.*;

/**
 * 重试注解
 */
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FeignRetry {

	/**
	 * 重试策略 我们使用自定义的{@link FeignBackOff}
	 */
	FeignBackOff backoff() default @FeignBackOff();

	/**
	 * 最大重试次数 默认3次
	 */
	int maxAttempt() default 3;

	/**
	 * 抛出指定异常才会重试
	 */
	Class<? extends Throwable>[] include() default {};

}
